package AnaliseLexicaFinal.Analise;

import java.util.LinkedList;

import AnaliseLexicaFinal.EstruturaDeDados.ErroLexico;

/**
 * Excecao para mostrar erros lexicos
 * @version 1.0
 * @author Elisson
 */
public class ErroLexicoException extends Exception{
	protected LinkedList<ErroLexico> erros = new LinkedList<ErroLexico>(); //Lista de erros em uma excecao
	
	private static final long serialVersionUID = 1L;

	/**
	 * Adiciona um erro a lista de erros 
	 * @param motivo - Motivo do erro
	 * @param linha - Linha em que aconte&ccedileu o erro
	 */
	public void addErros(String token, String motivo, int linha){
		erros.add(new ErroLexico(token, motivo, linha));
	}
	
	/**
	 * Retorna erro
	 * @return erro
	 */
	public ErroLexico getErros() {
		return erros.removeFirst();
	}
	
	/**
	 * Retorna tamanho da lista
	 * @return Tamanho da lista
	 */
	public int size(){
		return erros.size();
	}
}
